For each..next
O comando de controle for each..next cria uma construção de iteração de script que executa um ou vários comandos para cada valor de uma lista separada por vírgulas. Os comandos dentro do loop incluídos entre for e next serão executados para cada valor da lista.
Sintaxe:
A sintaxe especial permite gerar listas com nomes de arquivo e diretório no diretório atual.
for each var in list
[statements]
[exit for [ ( when | unless ) condition ]
[statements]
next [var]
Argumentos:
Argumento | Descrição |
---|---|
var | Um nome de uma variável de script que adquire um novo valor da lista para cada execução de referência de loop. Se var for especificado depois de next, ele deverá ter o mesmo nome de variável que a encontrada após o for each correspondente. |
O valor da variável var pode ser alterado por comandos dentro da referência circular, entretanto, essa não é uma prática de programação recomendável.
Se uma cláusula exit for for encontrada dentro do loop, a execução do script será transferida para o primeiro comando após a cláusula next, indicando o fim do loop. Uma cláusula exit for pode ser transformada em condicional pelo uso opcional de um sufixo when ou unless.
Sintaxe:
list := item { , item }
item := constant | (expression) | filelist mask | dirlist mask | fieldvaluelist mask
Argumento | Descrição |
---|---|
constant | Qualquer número ou string. Observe que uma string escrita diretamente no script deve ser colocada entre aspas simples. Uma string sem aspas simples será interpretada como uma variável e, em seguida, o valor da variável será usado. Os números não precisam ser colocados entre aspas simples. |
expression | Uma expressão arbitrária. |
mask | A máscara de um nome de arquivo ou de um nome de pasta que pode incluir todos os caracteres válidos de nome de arquivo, bem como os caracteres curingas padrão * e ?. Você pode usar caminhos de arquivo absolutos ou caminhos lib://. |
condition | Uma expressão lógica de avaliação como True ou False. |
statements | Qualquer grupo de um ou mais comandos de script do Qlik Sense. |
filelist mask | Essa sintaxe produz uma lista separada por vírgulas de todos os arquivos existentes no diretório atual e que correspondem à máscara de nome de arquivo. |
dirlist mask | Essa sintaxe produz uma lista separada por vírgulas de todas as pastas existentes na pasta atual e que correspondem à máscara de nome de pasta. |
fieldvaluelist mask | Essa sintaxe itera através dos valores de um campo já carregado no Qlik Sense. |
Exemplo 1: Carregando uma lista de arquivos
Exemplo 2: Criando uma lista de arquivos no disco
Este exemplo carrega uma lista de todos os arquivos do Qlik Sense relacionados em uma pasta.
Exemplo 3: Iterações através dos valores de um campo
Este exemplo itera através da lista dos valores carregados do FIELD e gera um novo campo, NEWFIELD. Para cada valor do FIELD, será criado dois registros NEWFIELD.
A tabela resultante tem a seguinte aparência:
NEWFIELD |
---|
one-1 |
one-2 |
two-1 |
two-2 |
three-1 |
three-2 |